//
//  CZDetailViewController.m
//  i0S007通用项目
//
//  Created by Apple on 16/2/19.
//  Copyright © 2016年 Apple. All rights reserved.
//

#import "CZDetailViewController.h"
#import "CZMenuItem.h"

@interface CZDetailViewController ()

/// 当前正在显示的内容控制器
@property (nonatomic, strong) UINavigationController *showContentVC;

@end

@implementation CZDetailViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    self.view.backgroundColor = CommonBGColor;
    
    // 测试:将导航控制器的view添加到detail控制器里面.
//    UIViewController *vc = [[UIViewController alloc] init];
//    vc.title = @"测试";
//    UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:vc];
//    
//    nav.view.backgroundColor = [UIColor brownColor];
//    
//    [self.view addSubview:nav.view];
//    
//    [self addChildViewController:nav];
//    
//    // 约束导航控制器的view
//    [nav.view mas_makeConstraints:^(MASConstraintMaker *make) {
//        // 填充父控件并且可以设置间距
//        make.edges.mas_equalTo(UIEdgeInsetsMake(20, 0, 0, 44));
//    }];
}

/**
 *  按钮点击后切换详情控制器的内容控制器
 *
 *  @param menuItem 按钮对应的menuItem
 */
- (void)setupContentViewWithMenuItem:(CZMenuItem *)menuItem {
    // 将正在显示的内容控制器的view从父控件移除
    [self.showContentVC.view removeFromSuperview];
    
    BOOL hasVC = NO;
    // 1.判断之前是否已经创建过这个控制器
    for (UINavigationController *vc in self.childViewControllers) {
        if ([vc.title isEqualToString:menuItem.title]) {
            // 找到了之前创建的控制器
            hasVC = YES;

            self.showContentVC = vc;
            break;
        }
    }
    
    // 没有找到这个控制器
    if (!hasVC) {
        // 根据模型里面保存的控制器的名称来创建控制器
        Class cls = NSClassFromString(menuItem.detailContentVCName);
        UIViewController *vc = [[cls alloc] init];
        vc.title =menuItem.title;
        
        UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:vc];
        
        [self addChildViewController:nav];
        
        self.showContentVC = nav;
    }

    [self.view addSubview:self.showContentVC.view];
    
    // 约束导航控制器的view
    [self.showContentVC.view mas_makeConstraints:^(MASConstraintMaker *make) {
        // 填充父控件并且可以设置间距
        make.edges.mas_equalTo(UIEdgeInsetsMake(20, 0, 0, 44));
    }];
}
@end
